{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import scipy.special\n",
    "from bokeh.plotting import figure, show, output_notebook"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## algorithm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def bezier(points, steps=100):\n",
    "    n = len(points)\n",
    "    b = [scipy.special.binom(n - 1, i) for i in range(n)]\n",
    "    r = np.arange(n)\n",
    "\n",
    "    for t in np.linspace(0, 1, steps):\n",
    "        u = np.power(t, r) * np.power(1 - t, n - r - 1) * b\n",
    "        yield t, u @ points"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <a href=\"http://bokeh.pydata.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
       "        <span id=\"beb0e9b7-ff9f-4884-9f2c-f62b1fbbb62f\">Loading BokehJS ...</span>\n",
       "    </div>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "\n",
       "(function(global) {\n",
       "  function now() {\n",
       "    return new Date();\n",
       "  }\n",
       "\n",
       "  var force = true;\n",
       "\n",
       "  if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "    window._bokeh_onload_callbacks = [];\n",
       "    window._bokeh_is_loading = undefined;\n",
       "  }\n",
       "\n",
       "\n",
       "  \n",
       "  if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "    window._bokeh_timeout = Date.now() + 5000;\n",
       "    window._bokeh_failed_load = false;\n",
       "  }\n",
       "\n",
       "  var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "     \"<div style='background-color: #fdd'>\\n\"+\n",
       "     \"<p>\\n\"+\n",
       "     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "     \"</p>\\n\"+\n",
       "     \"<ul>\\n\"+\n",
       "     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "     \"</ul>\\n\"+\n",
       "     \"<code>\\n\"+\n",
       "     \"from bokeh.resources import INLINE\\n\"+\n",
       "     \"output_notebook(resources=INLINE)\\n\"+\n",
       "     \"</code>\\n\"+\n",
       "     \"</div>\"}};\n",
       "\n",
       "  function display_loaded() {\n",
       "    if (window.Bokeh !== undefined) {\n",
       "      document.getElementById(\"beb0e9b7-ff9f-4884-9f2c-f62b1fbbb62f\").textContent = \"BokehJS successfully loaded.\";\n",
       "    } else if (Date.now() < window._bokeh_timeout) {\n",
       "      setTimeout(display_loaded, 100)\n",
       "    }\n",
       "  }\n",
       "\n",
       "  function run_callbacks() {\n",
       "    window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "    delete window._bokeh_onload_callbacks\n",
       "    console.info(\"Bokeh: all callbacks have finished\");\n",
       "  }\n",
       "\n",
       "  function load_libs(js_urls, callback) {\n",
       "    window._bokeh_onload_callbacks.push(callback);\n",
       "    if (window._bokeh_is_loading > 0) {\n",
       "      console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "      return null;\n",
       "    }\n",
       "    if (js_urls == null || js_urls.length === 0) {\n",
       "      run_callbacks();\n",
       "      return null;\n",
       "    }\n",
       "    console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "    window._bokeh_is_loading = js_urls.length;\n",
       "    for (var i = 0; i < js_urls.length; i++) {\n",
       "      var url = js_urls[i];\n",
       "      var s = document.createElement('script');\n",
       "      s.src = url;\n",
       "      s.async = false;\n",
       "      s.onreadystatechange = s.onload = function() {\n",
       "        window._bokeh_is_loading--;\n",
       "        if (window._bokeh_is_loading === 0) {\n",
       "          console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "          run_callbacks()\n",
       "        }\n",
       "      };\n",
       "      s.onerror = function() {\n",
       "        console.warn(\"failed to load library \" + url);\n",
       "      };\n",
       "      console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "      document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "    }\n",
       "  };var element = document.getElementById(\"beb0e9b7-ff9f-4884-9f2c-f62b1fbbb62f\");\n",
       "  if (element == null) {\n",
       "    console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'beb0e9b7-ff9f-4884-9f2c-f62b1fbbb62f' but no matching script tag was found. \")\n",
       "    return false;\n",
       "  }\n",
       "\n",
       "  var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.js\"];\n",
       "\n",
       "  var inline_js = [\n",
       "    function(Bokeh) {\n",
       "      Bokeh.set_log_level(\"info\");\n",
       "    },\n",
       "    \n",
       "    function(Bokeh) {\n",
       "      \n",
       "      document.getElementById(\"beb0e9b7-ff9f-4884-9f2c-f62b1fbbb62f\").textContent = \"BokehJS is loading...\";\n",
       "    },\n",
       "    function(Bokeh) {\n",
       "      console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.css\");\n",
       "      Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.css\");\n",
       "      console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.css\");\n",
       "      Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.css\");\n",
       "    }\n",
       "  ];\n",
       "\n",
       "  function run_inline_js() {\n",
       "    \n",
       "    if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "      for (var i = 0; i < inline_js.length; i++) {\n",
       "        inline_js[i](window.Bokeh);\n",
       "      }if (force === true) {\n",
       "        display_loaded();\n",
       "      }} else if (Date.now() < window._bokeh_timeout) {\n",
       "      setTimeout(run_inline_js, 100);\n",
       "    } else if (!window._bokeh_failed_load) {\n",
       "      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "      window._bokeh_failed_load = true;\n",
       "    } else if (force !== true) {\n",
       "      var cell = $(document.getElementById(\"beb0e9b7-ff9f-4884-9f2c-f62b1fbbb62f\")).parents('.cell').data().cell;\n",
       "      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "    }\n",
       "\n",
       "  }\n",
       "\n",
       "  if (window._bokeh_is_loading === 0) {\n",
       "    console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "    run_inline_js();\n",
       "  } else {\n",
       "    load_libs(js_urls, function() {\n",
       "      console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "      run_inline_js();\n",
       "    });\n",
       "  }\n",
       "}(this));"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "output_notebook()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <div class=\"bk-plotdiv\" id=\"a775e17f-84ce-4333-8c2b-6804c843ae6a\"></div>\n",
       "    </div>\n",
       "<script type=\"text/javascript\">\n",
       "  \n",
       "  (function(global) {\n",
       "    function now() {\n",
       "      return new Date();\n",
       "    }\n",
       "  \n",
       "    var force = false;\n",
       "  \n",
       "    if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "      window._bokeh_onload_callbacks = [];\n",
       "      window._bokeh_is_loading = undefined;\n",
       "    }\n",
       "  \n",
       "  \n",
       "    \n",
       "    if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "      window._bokeh_timeout = Date.now() + 0;\n",
       "      window._bokeh_failed_load = false;\n",
       "    }\n",
       "  \n",
       "    var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "       \"<div style='background-color: #fdd'>\\n\"+\n",
       "       \"<p>\\n\"+\n",
       "       \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "       \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "       \"</p>\\n\"+\n",
       "       \"<ul>\\n\"+\n",
       "       \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "       \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "       \"</ul>\\n\"+\n",
       "       \"<code>\\n\"+\n",
       "       \"from bokeh.resources import INLINE\\n\"+\n",
       "       \"output_notebook(resources=INLINE)\\n\"+\n",
       "       \"</code>\\n\"+\n",
       "       \"</div>\"}};\n",
       "  \n",
       "    function display_loaded() {\n",
       "      if (window.Bokeh !== undefined) {\n",
       "        document.getElementById(\"a775e17f-84ce-4333-8c2b-6804c843ae6a\").textContent = \"BokehJS successfully loaded.\";\n",
       "      } else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(display_loaded, 100)\n",
       "      }\n",
       "    }\n",
       "  \n",
       "    function run_callbacks() {\n",
       "      window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "      delete window._bokeh_onload_callbacks\n",
       "      console.info(\"Bokeh: all callbacks have finished\");\n",
       "    }\n",
       "  \n",
       "    function load_libs(js_urls, callback) {\n",
       "      window._bokeh_onload_callbacks.push(callback);\n",
       "      if (window._bokeh_is_loading > 0) {\n",
       "        console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "        return null;\n",
       "      }\n",
       "      if (js_urls == null || js_urls.length === 0) {\n",
       "        run_callbacks();\n",
       "        return null;\n",
       "      }\n",
       "      console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "      window._bokeh_is_loading = js_urls.length;\n",
       "      for (var i = 0; i < js_urls.length; i++) {\n",
       "        var url = js_urls[i];\n",
       "        var s = document.createElement('script');\n",
       "        s.src = url;\n",
       "        s.async = false;\n",
       "        s.onreadystatechange = s.onload = function() {\n",
       "          window._bokeh_is_loading--;\n",
       "          if (window._bokeh_is_loading === 0) {\n",
       "            console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "            run_callbacks()\n",
       "          }\n",
       "        };\n",
       "        s.onerror = function() {\n",
       "          console.warn(\"failed to load library \" + url);\n",
       "        };\n",
       "        console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "        document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "      }\n",
       "    };var element = document.getElementById(\"a775e17f-84ce-4333-8c2b-6804c843ae6a\");\n",
       "    if (element == null) {\n",
       "      console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'a775e17f-84ce-4333-8c2b-6804c843ae6a' but no matching script tag was found. \")\n",
       "      return false;\n",
       "    }\n",
       "  \n",
       "    var js_urls = [];\n",
       "  \n",
       "    var inline_js = [\n",
       "      function(Bokeh) {\n",
       "        (function() {\n",
       "          var fn = function() {\n",
       "            var docs_json = {\"aed67c60-aff1-4fd7-b7c8-f48a1ec9b187\":{\"roots\":{\"references\":[{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAABp9wADJb8aP2n3AAMlvzo/VhZhowkXTj9p9wADJb9aP0vBWOpU5WQ/VhZhowkXbj9uvUxWWHp0P2n3AAMlv3o/kJzma/XsgD9LwVjqVOWEP+Hp1vywSIk/VhZhowkXjj9Vo/tuL6iRP269TFZYepQ/c9mjh/+Blz9p9wADJb+aP08XZMjIMZ4/kJzma/XsoD9yLp6YxduiP0vBWOpU5aQ/GlUWYaMJpz/h6db8sEipP6F/mr19oqs/VhZhowkXrj8CVxVXKlOwP1Wj+24vqLE/I3BjGZQKsz9uvUxWWHq0PzGLtyV897U/c9mjh/+Btz8wqBF84hm5P2n3AAMlv7o/HsdxHMdxvD9PF2TIyDG+P/vn1wYq/78/kJzma/XswD9iBaKdBeHBP3IunpjF28I/vxfbXDXdwz9LwVjqVOXEPxQrF0Ek9MU/GlUWYaMJxz9fP1ZK0iXIP+Hp1vywSMk/olSYeD9yyj+hf5q9faLLP91q3ctr2cw/VhZhowkXzj8OgiVEV1vPPwJXFVcqU9A/HU248AD80D9Vo/tuL6jRP6tZ39G1V9I/I3BjGZQK0z+45odFysDTP269TFZYetQ/QPSxSz431T8xi7clfPfVP0SCXeQRu9Y/c9mjh/+B1z/DkIoPRUzYPzCoEXziGdk/vx85zdfq2T9p9wADJb/aPzMvaR3Klts/HsdxHMdx3D8mvxoAHFDdP08XZMjIMd4/lM9Ndc0W3z/759cGKv/fPz8wgT5vdeA/kJzma/Xs4D/yOJyLJ2bhP2IFop0F4eE/4wH4oY9d4j9yLp6YxdviPxCLlIGnW+M/vxfbXDXd4z981HEqb2DkP0vBWOpU5eQ/J96PnOZr5T8UKxdBJPTlPw+o7tcNfuY/GlUWYaMJ5z81Mo7c5JbnP18/VkrSJeg/mXxuqmu26D/h6db8sEjpPzuHj0Gi3Ok/olSYeD9y6j8ZUvGhiAnrP6F/mr19ous/Nt2Tyx497D/dat3La9nsP5Iod75kd+0/VhZhowkX7j8rNJt6WrjuPw6CJURXW+8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAABjvk97F5WUP2y9TFZYeqQ/r5ruyWWPrj9+u0YM2kS0PyepFKGhNLk/VhZhowkXvj+EAZYJCXbBP6C3Onjd2cM/fa2eHQI3xj8e48H5do3IP35YpAw83co/og1GVlEmzT+KAqfWtmjPP5mb40Y20tA/zlXTPbns0T/lryJQ5APTP9yp0X23F9Q/tEPgxjIo1T9ufU4rVjXWPwlXHKshP9c/g9BJRpVF2D/h6db8sEjZPx+jw850SNo/PvwPvOBE2z8+9bvE9D3cPx+Ox+iwM90/4sYyKBUm3j+En/2CIRXfPwQMlPxqAOA/NxhZRZl04D9a9M2bG+fgP26g8v/xV+E/chzHcRzH4T9naEvxmjTiP0yEf35toOI/InBjGZQK4z/pK/fBDnPjP6C3Onjd2eM/RxMuPAA/5D/fPtENd6LkP2g6JO1BBOU/4AUn2mBk5T9KodnU08LlP6UMPN2aH+Y/8EdO87V65j8qUxAXJdTmP1cugkjoK+c/ctmjh/+B5z9/VHXUatbnP32f9i4qKeg/bLonlz166D9KpQgNpcnoPxhgmZBgF+k/2OrZIXBj6T+IRcrA063pPypwam2L9uk/umq6J5c96j88Nbrv9oLqP67PacWqxuo/EDrJqLII6z9kdNiZDknrP6h+l5i+h+s/3VgGpcLE6z8BAyW/GgDsPxZ98+bGOew/HcdxHMdx7D8U4Z9fG6jsP/rKfbDD3Ow/0oQLD8AP7T+aDkl7EEHtP1NoNvW0cO0//JHTfK2e7T+WiyAS+srtPyBVHbWa9e0/nO7JZY8e7j8GWCYk2EXuP2KRMvB0a+4/rpruyWWP7j/rc1qxqrHuPxoddqZD0u4/OJZBqTDx7j9G37y5cQ7vP0X459cGKu8/NeHCA/BD7z8Vmk09LVzvP+YiiIS+cu8/p3ty2aOH7z9YpAw83ZrvP/ucVqxqrO8/jmVQKky87z8S/vm1gcrvP4ZmU08L1+8/6p5c9ujh7z8/pxWrGuvvP4V/fm2g8u8/uyeXPXr47z/hn18bqPzvP/nn1wYq/+8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"6b7e773a-ab9b-42fc-b06a-7d10adc3e20c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAACVQQK5XspDPxllCxy7hWM/pqjHCJ+pdT+pfvQmgP2CP1n2K8N7Qo0/BIdbP4DFlD+IJjzIR9+bP9T7IVA78aE/VvkMOohhpj8d9X88nTqrP8miNNtOO7A/LleC5d4Hsz8dsO0wIQC2P4v8YZNAIbk/BkLxRHBovD+oPNTf69K/P5QvNbD7rsE/Y+mckm+Dwz+1u3f3e2XFP71xL3DPU8c/+TFBvxxNyT87fj3YGlDLP5QzyN+EW80/ZoqYKxpuzz8sizwhT8PQPzPjI27s0dE/Y/L68Eri0j+AC8S20vPTP/EuC+XtBdU/yQrmuQgY1j+3+vOLkSnXPxUIXsr4Odg/4unW/LBI2T+8BJvDLlXaP+pqcNfoXts/WdymCVhl3D+dxhdE92fdP+pEJolDZt4/FiC/87tf3z9WZ6zb8CngP2a6+Q8coeA/HXIMSSIV4T83Tm5Fx4XhPz3l7c/P8uE/iqSevwFc4j9N0Nj3I8HiP4yDOWj+IeM/FrCiDFp+4z+UHjvtANbjP4Bubh6+KOQ/JBbtwF125D+eYqwBrb7kP+B35hl6AeU/rVAaT5Q+5T+cvgvzy3XlPxJqw2PypuU/TNKOC9rR5T9WTQBhVvblPxII7+Y7FOY/MgZ3LGAr5j84IvnMmTvmP3wNG3DAROY/LFDHyaxG5j8+SS2aOEHmP4cuwa0+NOY/pAw83Zof5j8Kx5sNKgPmPwEYIzDK3uU/oJBZQlqy5T/TmAtOun3lP1pvSmnLQOU/wSlstm/75D9ttAtkiq3kP5bSCK3/VuQ/QB6I2LT34z9ICPM5kI/jP1zY9zB5HuM/9qyJKVik4j9ve+CbFiHiP+YPeQyflOE/Vg0VDN3+4D+G7bo3vV/gPygCbHFabt8/3N4siTcK3j+kbWI68ZLcP7BYQCFpCNs/xveD8oJq2T9eUHR7JLnXP4UV4qE19NU/AKgnZKAb1D8rFinZUC/SPwUcVDA1L9A/iEZAY3s2zD9Xhhx7uebHP3mBUpoNb8M/KDoWyMmevT8uMwVZYQ+0P5JLIuSZX6Q/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACtSyLkmV+kP0YzBVlhD7Q/MDoWyMmevT+CgVKaDW/DP2aGHHu55sc/j0ZAY3s2zD8LHFQwNS/QPy0WKdlQL9I/A6gnZKAb1D+LFeKhNfTVP2BQdHskudc/zPeD8oJq2T+1WEAhaQjbP6ltYjrxktw/3t4siTcK3j8qAmxxWm7fP4jtuje9X+A/Vg0VDN3+4D/oD3kMn5ThP3F74JsWIeI/+KyJKVik4j9c2PcweR7jP0gI8zmQj+M/QR6I2LT34z+V0git/1bkP2+0C2SKreQ/wilstm/75D9ab0ppy0DlP9SYC066feU/opBZQlqy5T8CGCMwyt7lPwrHmw0qA+Y/pAw83Zof5j+ILsGtPjTmPz9JLZo4QeY/K1DHyaxG5j9+DRtwwETmPzgi+cyZO+Y/LwZ3LGAr5j8SCO/mOxTmP1hNAGFW9uU/StKOC9rR5T8SasNj8qblP5y+C/PLdeU/rVAaT5Q+5T/ed+YZegHlP55irAGtvuQ/JBbtwF125D9+bm4evijkP5QeO+0A1uM/FLCiDFp+4z+Lgzlo/iHjP03Q2PcjweI/iKSevwFc4j885e3Pz/LhPzZObkXHheE/HHIMSSIV4T9kuvkPHKHgP1VnrNvwKeA/GCC/87tf3z/mRCaJQ2beP5rGF0T3Z90/VtymCVhl3D/manDX6F7bP7oEm8MuVdo/3unW/LBI2T8UCF7K+DnYP7T684uRKdc/xgrmuQgY1j/tLgvl7QXVP3wLxLbS89M/YPL68Eri0j8v4yNu7NHRPyyLPCFPw9A/YIqYKxpuzz+RM8jfhFvNPzl+PdgaUMs/8zFBvxxNyT+4cS9wz1PHP7C7d/d7ZcU/Yumckm+Dwz+OLzWw+67BP6A81N/r0r8/AkLxRHBovD+C/GGTQCG5Pxew7TAhALY/JFeC5d4Hsz/EojTbTjuwPwn1fzydOqs/S/kMOohhpj/P+yFQO/GhP28mPMhH35s/+YZbP4DFlD8w9ivDe0KNP5d+9CaA/YI/mqjHCJ+pdT/oZAscu4VjP2JBArleykM/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"093234f7-65f4-4457-8f40-c06f1e2bd7b0\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(241, 88, 82)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2c89870d-3fc0-4e0e-9ce9-086da1dcad07\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(49, 186, 103)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"24b0daab-8ba3-4455-8d45-c6035f74d3f9\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"04383560-26d7-4c36-9791-1f29e085b1e6\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"093234f7-65f4-4457-8f40-c06f1e2bd7b0\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"24b0daab-8ba3-4455-8d45-c6035f74d3f9\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"04383560-26d7-4c36-9791-1f29e085b1e6\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"882d7d53-8d19-4ab7-bcdd-64b10d192456\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAADZRf+5cmFQP9L10OBNDHA/4F8gqQmvgT8YyBq1RcmOP5m1C89MjJc/+qH40ISYoD8KORX3AxumPzvz1PyOP6w/yyJabTJ8sT99Y1kvDBy1P/qXKRbI+Lg/fK1NXgMMvT8MEYWXwqfAP2KCMk2f3sI/svqSTqUnxT9dEmsP93/HPz4q4PjL5Mk/kGt4aXBTzD8ayBq1RcnOP/98hxLhodA/6sH+ezjg0T9c2PcweR7TPxLKJ8Z9W9Q/CAX0SiuW1T9wW3JJcc3WP7gDacZJANg/hJhOQbkt2T+wGEq0zlTaP1TnMpSjdNs/yMuQ0FuM3D+N8ZvTJZvdP2foPII6oN4/WKQMPN2a3z/KPqrtLUXgP0AYh1oHt+A/5u5xTKwi4T8uBZho04fhP57PfpE45uE/5PQD55w94j/GTV3Gxo3iPyjlGMqB1uI/Avgcyp4X4z939afb81DjP75+UFFcguM/JWcFu7ir4z8ktA3m7szjP0qdCN3p5eM/PIzt55n24z/BHAyM9P7jP8McDIz0/uM/O4zt55n24z9InQjd6eXjPyS0DebuzOM/JGcFu7ir4z+8flBRXILjP3b1p9vzUOM/Avgcyp4X4z8m5RjKgdbiP8ZNXcbGjeI/5PQD55w94j+dz36ROObhPysFmGjTh+E/5u5xTKwi4T8+GIdaB7fgP8k+qu0tReA/VqQMPN2a3z9o6DyCOqDeP4jxm9Mlm90/xsuQ0FuM3D9Q5zKUo3TbP6wYSrTOVNo/gZhOQbkt2T+0A2nGSQDYP29bcklxzdY/BQX0SiuW1T8QyifGfVvUP1zY9zB5HtM/58H+ezjg0T/7fIcS4aHQPxLIGrVFyc4/jmt4aXBTzD80KuD4y+TJP1sSaw/3f8c/r/qSTqUnxT9agjJNn97CPwYRhZfCp8A/bq1NXgMMvT/zlykWyPi4P29jWS8MHLU/xCJabTJ8sT8z89T8jj+sP/g4FfcDG6Y/8aH40ISYoD96tQvPTIyXP/nHGrVFyY4/118gqQmvgT+q9dDgTQxwP69F/7lyYVA/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACmRfYJFFapP3K5UI5w0Lg/50iUtjg4wj/Qle1VucXHP32klNoAEc0/qt/cnjQN0T8qcfynL3HTP6/BeiaxtNU/Li17twHY1z/NlEDBctvZP+xC+zxev9s/Xc+WgCaE3T9nA4gINirfP/lezaD/WOA/2etfKf4N4T+Pg21zV7ThP2JiSPtPTOI/lBcKyS/W4j+Rd3pVQlLjP+aN9m7WwOM/Uo9XHj4i5D/vy9mLznbkPxqhA+TfvuQ/oGuMPM365D+7eUN59CrlPzL99jC2T+U/Uv1aknVp5T8QSfBImHjlPxBp62GGfeU/uJEbMap45T8yldE1cGrlP43Vxv9GU+U/xzYEFJ8z5T/REMnR6gvlP58hclee3OQ/UX9gZy+m5D8hiuBMFWnkP3zeEMHIJeQ/H0fJz8Pc4z8Yr4G8gY7jP9YTOed+O+M/NXdcsTjk4j+f0a1iLYniPwQEKw7cKuI/8sn0dsTJ4T+qqzX1ZmbhPy3wCFtEAeE/Po9h2d2a4D9+I/HktDPgPwC5HTaWmN8/guE8TUTK3j+kH+5Jd/3dP6iolBUyM90/HGwWEnds3D/696njR6rbP8BcpDql7do/khFHnY432j9V2I0xAonZP8yh/Ib84tg/vnFtYHhG2D8HQ959brTXP8LrPmbVLdc/XQE/MaGz1j+/vBtRw0bWP2PebVwq6NU/b5L318GY1T/gVHIAclnVP5zVXJQfK9U/k9zInasO1T/fLSk88wTVP+JtH27PDtU/XgVK2xQt1T+fBRKek2DVP4gMeQ0XqtU/wijnhmUK1j/Mvfg3QILWPyNoTOhiEtc/XOFQw4O71z865BIiU37YP+IQC1V7W9k/2dDrbaBT2j9CO28JYGfbP+P4JBlRl9w/UihArQPk3T8RQmW+AE7fP0/+u/vkauA/VZi0v+w94T+LXoLhUCDiP561X59GEuM/bGlCJP8T5D8rn8JspyXlP2/HASxoR+Y/LpCRsGV55z/l1lrJv7voP46ahKqRDuo/x+1a0vFx6z/W6DXu8eXsP6ibYL+eau4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"3c293c0d-445f-4392-a734-53a441dd5d49\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(26, 84, 28)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3dd9a81b-bac0-4ff9-8386-beb4e85e9c83\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"3c293c0d-445f-4392-a734-53a441dd5d49\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2c89870d-3fc0-4e0e-9ce9-086da1dcad07\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"45e1f90b-7059-449c-9b87-0a6056382e67\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"26038497-ae96-433c-a0bc-f4a6257b3b08\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"45e1f90b-7059-449c-9b87-0a6056382e67\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAABDyDypmWdYP90faDufvnc/cfwwp0v7iT88IcpuhXSWP4RqHjknDaE/jcbQAX/bpz/AXQfYQoqvP2BEvZKy/7M/bKQhpuiQuD8A/eNwtWy9P06L2DPDQ8E/GmsvFiLrwz+PKfwBKafGP9NA05/Gcsk//Lg6TCZJzD+zEfu+ryXPPwo771UDAtE/Th1vLgVw0j/JUt+i6trTP6KAjEjeQNU/YPxp0yeg1j9eHwXWK/fXPzO/L35rRNk/Y8thToSG2j8MENLTL7zbP7cdRllD5Nw/MFaZlq/93T+XHvtcgAffPzob8h9uAOA/9plhHYJ04D97ErCpqd/gP/GqexyfQeE/YJ4FcCma4T/7xHYNHOnhP/auf5dWLuI/9lFUs8Rp4j/4SAPQXZviP8imKOwkw+I/Glv8WSjh4j8bKryBgfXiP402caJUAOM/dB4RkdAB4z9tqvp1LvriP08Pzoix6eI/msKgyqbQ4j9U4Yy+ZK/iP3wpnCBLhuI/74UOm8JV4j8ELfx5PB7iP6RRU10y4OE/zWYx6SWc4T/j9Zd0oFLhP1AHfbYyBOE/0h03cXSx4D9RxEQcBFvgPziub4yGAeA/ytSWNE1L3z86UR+OKZDePyYjnL8N090/+WIHPm8V3T9L6guZzFjcP09zlresnts/Jt0dEZ7o2j+BlaLjNTjaPycnZWYPj9k/ve1T+cru2D+V7i9RDVnYP5jWaKB+z9c/TB2wvMlT1z/rTENBm+fWP6Rv7a2gjNY/3KG/godE1j+kyYBY/BDWPzRz1PWp89U/hNIYYTju1T8G6vvuSwLWP2jWx02EMdY/iT9mjXt91j9n7hokxefWP0aI9e/scdc/1W76NHYd2D+FxQKY2uvYP9ebUxaJ3tk/9jzs+eT22j81pIvKRDbcP78WbTvxnd0/cuK7FSQv3z/RIN+Pg3XgPxqyW4BZaeE/x07AEJdz4j/w2+zEtZTjPzE2ON0kzeQ/TIDPwUgd5j9/BHFseoXnPyiogtAGBuk/QvKDQS6f6j8spNvXI1HsPxLlANQMHO4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAHr/G/Mj+uP8XeIkHhdr0//zbw+UaDxT9qX/W95OfLPw73HScL9dA/bv9gfG7F0z+nk49FtmXWPyRIJnaU1tg/dWJ/3tEY2z/Tm0j/TC3dP2C+QeD4FN8/yQ4i9W1o4D+kdEliBzHhP+ctuprd5OE/iOEJg42E4j8UMtZ0uxDjP0Cd/rMSiuM/lMiC5UTx4z/dOwWICUfkP8+I8m0djOQ/O+BMOULB5D/NFBzZPefkP/0Kggja/uQ/vpZzz+MI5T9kxhUFKwblPy6bv9OB9+Q/Ey+gPrzd5D8uSAmpr7nkP4lZXl8yjOQ/XPGnIRtW5D+zlMuvQBjkP7QIaFd50+M/IQlWg5qI4z9ubM1MeDjjPz+1Lg7l4+I/axFx97CL4j9bxjSkqTDiP9oKerOZ0+E/gk78YEh14T9r7jEgeRbhP2RX8Djrt+A/mZW0ZVla4D+OoyDn8vzfP193dsf3Sd8/WsSRHRed3j9a8QWTmvfdPzYU0Ba/Wt0/YzKdLbTH3D+1XFlFmz/cP/OlBwyHw9s/IvTiyXpU2z8Hrce+afPaP1I95oI2odo/znq+arJe2j9m4WPunCzaPyirChSjC9o/FcPd3V782T/qkh27Vv/ZP8mrh/z8FNo/yUkHTK892j9zsq4ntnnaPxVu+V9Eydo/FlxXmXYs2z8WogDRUqPbPw52EuXHLdw/QcP0H63L3D8cqgjHwXzdPwzbn6ysQN4/F8w8xfsW3z+PyRvAI//fP7dwgtE/fOA/6lSzNCgB4T8n8VxT3o3hP/r3FhboIeI/UBrP2L284j9oIOhAyl3jP1Nw/RRqBOQ/0gFLFuyv5D+wv7nbkF/lP55WkK6KEuY/WnHIaP3H5j9+YghV/n7nP5Q7QRCUNug/wlHxbLbt6D/OLwtYTqPpP571gL81Vuo/PCV0ejcF6z8u3QkzD6/rP2KA41FpUuw/dMs76+Lt7D92V6itCYDtPyaKf9JbB+4/mPPiD0iC7j9aGW6MLe/uP/auidRbTO8/Dzxj0RKY7z/BL4nBgtDvP5xhKzPM8+8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"aec6da32-00ae-4674-924c-6f87651370a9\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(35, 138, 239)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"9713d94f-6781-466e-9823-488c944e6a59\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"aec6da32-00ae-4674-924c-6f87651370a9\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3dd9a81b-bac0-4ff9-8386-beb4e85e9c83\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"4340c4eb-15aa-43b0-9a09-8eebab46254b\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"528e5171-5553-485e-90a5-ed24b9622ec0\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4340c4eb-15aa-43b0-9a09-8eebab46254b\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAACDkfcsrPdgP8EZikr2ZIA/ycV40/fPkT8h0j8hZZGeP8rDmt6lCqc/souGTV//rz+fizsyVf20Pymhhn5Iabo/o1zJudUXwD+BR6Y73R7DPyKmstHkQMY/mJvs16B1yT/2YwlKTrXMPwTlQvCw+M8/EIuntIic0T8XiDeJHTjTP8LLQec8zNQ/LniK1ktW1j8Z6B057dPXP+ydLIAAQ9k/kpJFUqCh2j9OzGUjIe7bPxkmVL8PJ90/vjDAxi9L3j+vFZsfelnfP2qykKyNKOA/uVoGArmY4D+lAbJ/Bv3gPyTYMN1UVeE/xwnzNZmh4T8kv/Yf3uHhP7ZPwL1CFuI/SxfLy/k+4j9XY66pSFziP6jsMV+GbuI/xFGNnRp24j8NBg69fHPiP0cqX7cyZ+I/vsKuHtBR4j9Av+sR9TPiP1JJWC5NDuI/Hs2rfo7h4T8sMQBoeK7hP0GxxZTSdeE/9ND43Ws44T8U2tUyGffgPztbRX+0suA/6Bo9kRts4D9/81D9LiTgP/4YXgWit98/LsqF3cgn3z+GSXUBl5reP9RLVJrNEd4/GF4ORCiP3T+BnXTWWhTdP6ed/y8Po9w/vmWoAuM83D9ebU+jZePbP4KBKNwVmNs/gHqiwl9c2z9xq0GRmjHbP+rz44UGGds/elzlxMoT2z+xJpxB8yLbP1g5o6xuR9s/atFpaAyC2z+QYH+EetPbP7uBEsBDPNw/duwZlM283D+3T55FVlXdP7j8mwDzBd4/kUrz+43O3j8wm96m5K7fPyd1MvBCU+A/ouefHGja4D/07FUgeGzhP9oZTW7vCOI/uDbd1i+v4j8Msem/f17jP/YLcWMJFuQ/6MO6FNrU5D8iGl+M4ZnlP/Y7ZDvxY+Y/ejqspbsx5z/CRu/D0wHoPwWnfW2s0ug/HdkEypei6T94VpPLxm/qPyJuFrFIOOs/2qiNkQr66z/cKy/w1rLsP46OuFlVYO0/RpcnCwoA7j/GUxaiVY/uP28B9tZ0C+8/0jlkQYBx7z+a19UmbL7vP24I01MI7+8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAB9P/ddfI2xPwaQLztkAcE/IUxKOsOwyD9IlNCSLdbPPxdkbUW3OdM//hxnAmFF1j8SPQk1Zg/ZP95N4WFJmds/rjitgLnk3T+B4a82jvPfP/beARTi4+A/a7T1r7yx4T/5GBDodGTiP/VUj/M1/eI/cZW4njZ94z9xLvyst+XjP5HbmEYCOOQ/iP69cWZ15D8n3CyXOZ/kPyHXWBLVtuQ/S6kGzZS95D/rmmrm1bTkPwq4xWX1neQ/NQSC+E565D8frM27O0vkP6I1tREREuQ/wq28gR/Q4z/v1PeksYbjP25JoR0LN+M/3q8wmmfi4j/i2e/j+YniPxHrDvnqLuI/9Xs3MlnS4T8ku55zV3XhP6WMlmnsGOE/d6ed0BG+4D8ese7Is2XgP3pXjjWwEOA/jdGwTax/3z9d0xehyufePxZTrBYbW94/sKm5w9za3T+1C45SLWjdP4GmikoIBN0/Mboxb0av3D/NrzI2nWrcP6IrdFSeNtw/9xscYrcT3D8vxJWVMQLcPzPElZUxAtw/9hscYrcT3D+iK3RUnjbcP9CvMjadatw/Mroxb0av3D99popKCATdP7YLjlItaN0/sqm5w9za3T8SU6wWG1veP1/TF6HK594/k9GwTax/3z98V441sBDgPxyx7sizZeA/eKed0BG+4D+mjJZp7BjhPyO7nnNXdeE/93s3MlnS4T8V6w756i7iP+PZ7+P5ieI/3a8wmmfi4j9wSaEdCzfjP/DU96SxhuM/wa28gR/Q4z+kNbURERLkPyGszbs7S+Q/NwSC+E565D8MuMVl9Z3kP+qaaubVtOQ/TKkGzZS95D8e11gS1bbkPybcLJc5n+Q/iv69cWZ15D+O25hGAjjkP3Eu/Ky35eM/cJW4njZ94z/0VI/zNf3iP/YYEOh0ZOI/aLT1r7yx4T/13gEU4uPgP3bhrzaO898/qzitgLnk3T/ZTeFhSZnbPwk9CTVmD9k/9xxnAmFF1j8LZG1FtznTPzmU0JIt1s8/GkxKOsOwyD/xjy87ZAHBP2Y/9118jbE/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"e883a199-6efc-4867-89a1-1279e6a8959c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(251, 166, 205)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"681e430c-f889-49dd-bc10-a863b396e9d6\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"e883a199-6efc-4867-89a1-1279e6a8959c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"9713d94f-6781-466e-9823-488c944e6a59\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"9d25ac2a-08b0-45aa-8464-35a185979ea4\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"ffdb90e9-ddcf-40b2-a9a6-cd971711abc8\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"9d25ac2a-08b0-45aa-8464-35a185979ea4\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAR//mnPHhmPx3oJPJUj4U/+7rz4hdClz9COPkoz8+jP4y7wflOpa0/o0g1fp1ttD9FQHBF25e6PwaAO6xSmcA/zHV5erUQxD+os81x3qTHP/yE2KahScs/D0UgUdnzzj8uVifmr0zRP1JbV5eEGNM/tFW+PU7Z1D9kTcM7ZovWP9I0RBOYK9g/nKfNex232T8juH5TmivbP8iEsW0Yh9w/i7N3QgPI3T+HVfCBI+3eP0EYc46a9d8/2odB8G5w4D9p47grWdfgP9/UyLyTL+E/659mU0l54T9liDcgxbThP/s5bmRw4uE/S/b9/s8C4j9UDXv4gRbiP/lV+w47HuI/L45EQ8Qa4j/3vJFo+AziP/zhM7jB9eE/7XBNahfW4T+SSONU+67hP+oHeZJ3geE/nNVpMZxO4T/o3yntfBfhP50NmPIu3eA/k4qCsMag4D9CDHy1VWPgP8/cGpzoJeA/fdtrDQrT3z9myV5XT17fP2qOruaE794/zDjYUHWI3j+UG3V4zirePyWEsD4e2N0/Ar7iX8+R3T/YozZ9JlndP71fNVU/L90/ymEKLQoV3T/V90dsSQvdP3FV62yPEt0/TD9VgTwr3T9c8eIxfVXdP1k7ybNIkd0/JzPKml/e3T8CQVTHSjzeP1ytj5Jaqt4/ljzWOaYn3z+1yAaLC7PfP9CWjmmXJeA/NqA2iD134D8c9+o0kc3gP+UBHHaPJ+E/TkG5xxmE4T9kZg7C9uHhP1mqluXSP+I/Q/FYjEGc4j88cloBvvXiP/fRsL6sSuM/vs630lyZ4z+uzulsCeDjP5LT1ZLbHOQ/PImo/etN5D/kVbkgRXHkP6aFh1nlhOQ/nNyOScGG5D8XDVZaxnTkP2/BFGzdTOQ/DBtKr+0M5D9iupep37LjP6GVMGagPOM/8hUm0iSo4j8gJdlEbfPhP70H0DSJHOE/1hEtGZsh4D9i7PrvuAHePx5FJUNEcds/JponMsGO2D8dEuFUYVfVPwrYsFuoyNE/tvNb4+vAyz+6arn0HzrDP07DMay09LM/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAABowzGstPSzP9FqufQfOsM/vfNb4+vAyz8S2LBbqMjRPyoS4VRhV9U/LZonMsGO2D8mRSVDRHHbP2fs+u+4Ad4/2BEtGZsh4D/CB9A0iRzhPyAl2URt8+E/9BUm0iSo4j+llTBmoDzjP2O6l6nfsuM/DRtKr+0M5D9vwRRs3UzkPxkNVlrGdOQ/mdyOScGG5D+mhYdZ5YTkP+dVuSBFceQ/O4mo/etN5D+R09WS2xzkP6zO6WwJ4OM/vc630lyZ4z/10bC+rErjPzpyWgG+9eI/RvFYjEGc4j9Zqpbl0j/iP2JmDsL24eE/UUG5xxmE4T/jARx2jyfhPxn36jSRzeA/NqA2iD134D/Slo5plyXgP7LIBosLs98/lTzWOaYn3z9frY+SWqrePwBBVMdKPN4/ITPKml/e3T9XO8mzSJHdP1/x4jF9Vd0/SD9VgTwr3T9xVetsjxLdP9f3R2xJC90/yWEKLQoV3T+6XzVVPy/dP9mjNn0mWd0/Ar7iX8+R3T8ihLA+HtjdP5kbdXjOKt4/zTjYUHWI3j9sjq7mhO/eP2zJXldPXt8/gNtrDQrT3z/O3Bqc6CXgP0IMfLVVY+A/loqCsMag4D+cDZjyLt3gP+nfKe18F+E/ntVpMZxO4T/qB3mSd4HhP5BI41T7ruE/7nBNahfW4T/84TO4wfXhP/a8kWj4DOI/L45EQ8Qa4j/6VfsOOx7iP1QNe/iBFuI/SPb9/s8C4j/6OW5kcOLhP2SINyDFtOE/6Z9mU0l54T/g1Mi8ky/hP2njuCtZ1+A/2IdB8G5w4D9CGHOOmvXfP4ZV8IEj7d4/irN3QgPI3T/ChLFtGIfcPx+4flOaK9s/nqfNex232T/LNEQTmCvYP2FNwztmi9Y/slW+PU7Z1D9LW1eXhBjTPyhWJ+avTNE/AkUgUdnzzj/4hNimoUnLP5mzzXHepMc/xXV5erUQxD8CgDusUpnAPzJAcEXbl7o/mEg1fp1ttD9ou8H5TqWtPzA4+SjPz6M/77rz4hdClz/n5yTyVI+FP9f++ac8eGY/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"efc725a8-f663-4b67-8674-1514172ae41b\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(237, 252, 75)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2ed0a483-c29d-480d-878d-66365b096714\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"efc725a8-f663-4b67-8674-1514172ae41b\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"681e430c-f889-49dd-bc10-a863b396e9d6\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"db0f703b-ab06-43c9-90f5-d2e78b90ccfe\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"9b3a40dd-d90d-461d-a95e-aaeaa4368fd5\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"db0f703b-ab06-43c9-90f5-d2e78b90ccfe\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAACspWSvbrFsP2qMMezRVos/2sF+SRJInT8p0YIodMKoP15SDd23YrI/9L6YBrskuT8r7N7wtzzAP4jcgA1vG8Q/ZLchBGkbyD+IKMesYSvMP3cKdFnuHdA/PnG2Uosf0j9Lo62FehTUP/J9w8t699U/T+R5Sg7E1z/mJHRScXbZP7UBgvOQC9s/LB9/UQGB3D8vJYPF89TdP7VgiNYsBt8/BR4sCv0J4D/XM5vvE3/gP32JNpN74uA/Zg3Dk4k04T+bS9Obw3XhP5bcFVDapuE/HLaoS6TI4T+xW6ouGdzhP2uuFsNM4uE/e97RO2rc4T/uw5iRr8vhP36mYgFpseE/2z6Vr+yO4T+9fkBzlmXhP79vbMzDNuE/mjtYCNAD4T+yMl6WEM7gP0RpBZDRluA/tUWedlJf4D8QHZwowyjgP617ZSGC6N8/ghcnIamF3z91I/VR3SrfP4BjIcHN2d4/crv51fKT3j+qDKYii1reP7RfyLmYLt4/NL+PCt8Q3j8Br5dE4QHePwavl0ThAd4/NL+PCt8Q3j+0X8i5mC7eP64MpiKLWt4/crv51fKT3j98YyHBzdneP3gj9VHdKt8/hxcnIamF3z+pe2UhgujfPxEdnCjDKOA/uEWedlJf4D9GaQWQ0ZbgP7AyXpYQzuA/nDtYCNAD4T/Ab2zMwzbhP7p+QHOWZeE/3D6Vr+yO4T+BpmIBabHhP+7DmJGvy+E/ed7RO2rc4T9rrhbDTOLhP7Jbqi4Z3OE/GLaoS6TI4T+W3BVQ2qbhP5xL05vDdeE/ZA3Dk4k04T99iTaTe+LgP9Qzm+8Tf+A/BB4sCv0J4D+uYIjWLAbfPywlg8Xz1N0/Lh9/UQGB3D+uAYLzkAvbP+UkdFJxdtk/S+R5Sg7E1z/sfcPLevfVP0WjrYV6FNQ/OHG2Uosf0j91CnRZ7h3QP3Uox6xhK8w/W7chBGkbyD+C3IANbxvEPyDs3vC3PMA/5b6YBrskuT9HUg3dt2KyPxLRgih0wqg/y8F+SRJInT8njDHs0VaLP2GlZK9usWw/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAtb3ZIRFW2P7CImOuyZcU/Rxd9fwm0zj/k/ouUE43TP3TDwKwDT9c/1GxD63ij2j92lO2Ep47dPxMf8pufCuA/oap3yCse4T9DyGGergTiP2rkczEAweI/eSjLAxJW4z/cC9o458bjP40v2UiNFuQ/w0b2MhVI5D+xDWksjV7kP8Btdsr6XOQ/EOtKpVVG5D8oVXdxgh3kPwlwvY1O5eM/lui9Amyg4z8qYv3xbVHjP4HGm3HF+uI/oT3/0b6e4j87TJtKfz/iP0WT5AoD3+E/24NqrBt/4T+IFfoCbyHhP08ll0d2x+A/E50Fm31y4D+B24fcoyPgP3MZyqK1t98/03ZwM8833z90s+/dxsjeP9KwKlF5a94/gzEKBnAg3j/vOOFK5OfdP+6YjsTCwd0/EwqrXa+t3T84lfubCavdP+o+SlTxuN0/382ytEvW3T9yLV+dyAHeP6dTnj/oOd4/Tbox+wB93j+1XqBxRcneP1HhUsfKHN8/eMIyCo913z8m3X61f9HfP2uRQCVAF+A/xZ7mejhF4D9Yj1acmnHgP6XQL0ddm+A/2yJngn/B4D8u1jDgC+PgP0hpULEb/+A/D5mmJdoU4T+O4NpVhyPhP2Q1AjJ7KuE/9HoqUSgp4T+Js7idHh/hP4tjj9oNDOE/P+f6/Mfv4D+Wp2pXQ8rgP0gmCJGcm+A/lsRHZhhk4D9D85ouJSTgP/pI8Ea4uN8/3MX0yQQb3z9etdFwE3HeP/DUC/ohvd0/S/gqp8gB3T912Tbq+UHcP4RnyWoBgds/vYQBXILC2j/4csgcdQraP647BRwkXdk/zi6E+ie/2D/2H4XkYjXYP65VER37xNc/2ClqtVRz1z+EJBNrCkbXP5zkLaflQtc/e3ITmtVv1z/ooE1u5dLXP1LoS44xctg/Ea9p+NtT2T8pNxid/33aP4VvPMOi9ts/wKoQb6jD3T/gwRvIwOrfP8k1iT2sOOE/mkleikOu4j9Mnp8pfljkP5EAujV2OeY/MLogoP1S6D/a3RlFk6bqPx4y8XZXNe0/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"bf1ac35a-066e-4c94-898c-6ee88475ba57\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(82, 254, 183)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"e267d66a-6680-4400-bfb5-a98a2d189d83\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"bf1ac35a-066e-4c94-898c-6ee88475ba57\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2ed0a483-c29d-480d-878d-66365b096714\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"fa3d558f-c490-4c68-b450-1bdd6004d746\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"677b303d-020f-4f3d-98af-d0e8e7267a06\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"fa3d558f-c490-4c68-b450-1bdd6004d746\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAABXjfzons9xP5Hv5eD/2ZA//xo9zjDroT/36ds3KBSuPxGfUm52KrY/jvQbw9QTvj9ZdLpP10TDP4In4Xzfqsc/IlkEweMjzD+mUEGlVU3QP4FYnSFiftI/kmUXOjGd1D9n+J4bHqPWP27enAGzitg/h0uqbZZP2j/oUc7zd+7bPwh/erz8ZN0/t1fg26ux3j+/85yc2tPfP5obD23MZeA/9inHws7M4D8hPj+3mR/hPz+afDMTX+E/RtOLbFiM4T9u9lXxtKjhP/dUBgWateE/UUvGTpa04T8DmNXmTafhP9o9Schyj+E/XJQArr1u4T9nKKhg50bhP/d57HqiGeE/C5NLqJXo4D+q/UNiVrXgP0bZ8S5kgeA/19F/YyRO4D/fmils3hzgP/DL0DVx3d8/dlh/+mqJ3z+pRwNyYz/fP5Drjd7EAN8/76J5SKjO3j8N1a5T1KneP8uxyhW9kt4/pqPk5oSJ3j/mrrol/o3ePzPJ/+atn94/RrGBhs+93j+DJd4PWefeP8y1iXMAG98/SAD9e0FX3z+GHvh1ZJrfP8eK732F4t8/bgPxMc4W4D9RGwaLwjzgP4JwFkEEYuA/0CYq7nKF4D9nFcUc7qXgPwX99zVawuA/ry+1hqXZ4D+jA6VSzergPzSpcuri9OA/A2NLuxD34D+RxxBNn/DgP0SxiiT64OA/WO22frTH4D9SqSvajaTgP98nXkN2d+A/nYCBWJJA4D/7L5n5PgDgPy45kjIpbt8/6BfBRdTL3j91wS7UrhveP5z86TFuYN0/58+8IFCd3D+GdqtfHNbbPwMpEPIkD9s/vK3AB0VN2j9moepv3pXZP2S2oIDV7tg/XPltXYte2D/+pKyH1uvXP/Jl1KP5ndc/bE14X5h81z8KRD9kqo/XP87CwkRs39c/8BvvUE502D/d3D5A4VbZP0j896DAj9o/ecZt/Hon3D9Z/jWhdybeP7pOnQJtSuA/CxhOWTG94T+QlLnZJm/jP/lu1DiXY+U/faytgGSd5z/+/sRm9B7qP7MlElAa6uw/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACI0m5/La+4PyEE7GQuhMc/DKek/jbF0D8VIleO0TjVP+3WjEyyIdk/889jTZ2F3D+VYsX6JWvfP9UAZS/E7OA/xRzJgULs4T/iAYSvH7jiP5CR4F+PVOM/CnKI19jF4z+enp7dSRDkP/td4M0qOOQ/S9lD0LNB5D8EzRUuAzHkP4KtKbwUCuQ/TgNJUbrQ4z/NpK8/lYjjP1CvCsgQNeM/IKkffF3Z4j9+6/eGbXjiP7pEKtDxFOI/C5ih71ex4T+vAQvnyE/hP0Wf6JUo8uA/DnQf3RWa4D9o47Zm60jgPwegzQyC/98/zP78Ttt+3z9BsEN5ExHfP1itqEvktt4/TyWSApdw3j9+neq2Cz7eP95w3mXBHt4/+jlpid4R3j+drRorOhbeP7r4tVplKt4/n6CV8rRM3j/4BRCUS3vePzXVdcYjtN4/XLKrIxr13j/+HtN99zvfP2HJ8+l6ht8/JPkdnGPS3z+aOghBvQ7gP73wA8XNMuA/3H8BQl9U4D8XJTvGf3LgPzvtEHhTjOA/Xie/PBih4D9nG4AMKbDgP4qoIu0AueA/La6NjD274D8cpxp1obbgP3qVKNYVq+A/hi7D26uY4D86CrmQnX/gPyxc/kZOYOA/w1PAgko74D8ImhdlRxHgP0bKrCdDxt8/UFwAObdj3z9yTRyiN/3eP7EEeDtTld4/6dlor9Qu3j8ODCcKu8zdPzCvrz4xct0/TNf+o4Qi3T9LhG1vGuHcP/rPVDJksdw/ZWlzYtOW3D8SVvP1y5TcPyATVB2Wrtw/dVnoJk/n3D9/ywaZ2UHdP8CDgZHMwN0/FKxxemJm3j/SyOElZzTfPyKGsbESFuA/JNQPEiqn4D+BwMKhgU3hPw3XGAbECOI/P9oqyTTY4j/MkDF/prrjP9CDMPJwruQ/Ok30Ymex5T/AUzHvzsDmP7FXXy1V2ec/uum+Dwf36D8htscgSBXqP+1iESzKLus/cIGcZ4U97D8irDUysTrtP2JBgny9Hu4/US4c80zh7j+E0PgAMHnvP+YGLsJg3O8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"2c627ac9-6eb0-48e8-aabd-2f2fe6f17e0c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(85, 69, 186)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"41e945cc-d5ab-42dd-9d90-31ce50c018ce\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"2c627ac9-6eb0-48e8-aabd-2f2fe6f17e0c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"e267d66a-6680-4400-bfb5-a98a2d189d83\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"b1f0ad98-b1be-4928-ba1d-618f944f6d45\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"9f981f42-98ca-4f57-a5f9-0e2623de24b1\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b1f0ad98-b1be-4928-ba1d-618f944f6d45\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAABbqxNg2J51P2I2eX3OT5Q/090s1/ZwpT/jcVwVjdyxPy+rJzqcH7o/IkrXqqGVwT+wUPofeFnGP1rhBtrBOcs/dxZVb7kM0D8hQSQ05G/SP5NSoU8FvNQ/JW1cpaXo1j9p4uQbEe/YP3oxTwU0yto/zwWGEHh23D/YKZoRofHdP/8TqumpOt8/k4G66NAo4D9beiAixZvgP5G1s+Ea9+A/qS3S0hM84T/h8hKQOmzhP+r/LdlTieE/uwpTjFCV4T8Uip1yQJLhP3mzA+1FguE/PpzejIpn4T9xdPugNEThP/J/Cb5dGuE/fn4uRwrs4D9wFJT5IbvgP6zq3HtpieA/6RKg8HxY4D+cK02JyyngP8BNaCoo/d8/zKuxDcWv3z+BjnnQHG3fPxHqw2p0Nt8/xPjsJacM3z9g2rqrKPDeP0/iRZ4I4d4/eqm1nffe3j/QNeCeTeneP7jYFXQR/94/myfQZwEf3z9a9pTHnEffP7vUJzwud98/Nnody9ar3z9dAQ1dmePfP09/eVEzDuA/5UJxmhQq4D+kFezhaETgP9CENZwxXOA/M+wXTH9w4D+mE/VFd4DgPxnljzBZi+A/QCslMYSQ4D/cDt2we4/gP9GSIqrrh+A/m4MJbax54D/5Cp7KxWTgP8E4w5dxSeA/GyoneR0o4D8f2cvqawHgP8yoZe1orN8/K9q/HgZP3z+gKkYILe3ePx/X1wy8id4/BwOjcesn3j8eAO2DRMvdPxwXCb6Wd90/isdC5uow3T8PmfgldPvcP9PrxBp/29w/iupZ517V3D8pAKRNWO3cP0Aa2t+KJ90/rKRbWtiH3T/mlJg8yhHeP00Lv7t1yN4/1/yKLl6u3z8F9ioLq2LgPxTrMncvB+E/Gv2898PE4T9GZ1j95ZriP9CODXJ3iOM/cclRLa2L5D+4Vi9Y/aHlP3Xf7eUNyOY/xnRVSKP55z+sR36JjzHpP9hrAfihaeo/ei1KlZea6z+eCrt4DLzsP8ZxVF1uxO0/JDKNkvCo7j9ONhSMgV3vP6rYP0/C1O8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAki+3qcgK7P26OH7Ollck/bTDn/Tki0j/6cJSfZszWP8QTmP2W0No/2xjl4GU33j97lOiOQYXgP4xNDd44quE/8F2C1CWQ4j/QIXtpxTzjP0BuIsXrteM/moy0/20B5D+8JttZDiXkP4C6b9dqJuQ/M+GFJO4K5D/uT4CrwtfjPy35+MHHkeM/RSlt0Yg94z+75OhfNt/iP8A4WNygeuI/I6OwETUT4j+WN88j+qvhP8PAsPiQR+E/XNOO8DTo4D/9o27PvY/gP5N7y7qiP+A/j8V7XPzx3z/XMKKUJXnfP75HQsKhFd8/iby3SbnH3j/UUqu5KY/eP4uDHA00a94/g2GEkata3j/fzfE+BVzeP/vvylFnbd4/1LrO97iM3j/EHwHksbfeP1p0W5/p694/0JNmbuYm3z/UdEumK2bfP29ZZ05Hp98/4nYI7t7n3z+TglK03RLgP3CQz+ZpL+A/NvC8gatI4D9Bu6Ic2l3gP+in+wVRbuA/WeguKJJ54D+m4rE6SH/gP6nisTpIf+A/WeguKJJ54D/np/sFUW7gP0O7ohzaXeA/NvC8gatI4D9ukM/maS/gP5SCUrTdEuA/5nYI7t7n3z9pWWdOR6ffP9N0S6YrZt8/1pNmbuYm3z9ZdFuf6eveP74fAeSxt94/1LrO97iM3j/878pRZ23eP9zN8T4FXN4/hGGEkata3j+QgxwNNGveP9VSq7kpj94/g7y3SbnH3j++R0LCoRXfP9gwopQled8/isV7XPzx3z+Te8u6oj/gPwGkbs+9j+A/XdOO8DTo4D/EwLD4kEfhP5U3zyP6q+E/JKOwETUT4j+9OFjcoHriP7zk6F823+I/Silt0Yg94z8s+fjBx5HjP/FPgKvC1+M/MeGFJO4K5D+Aum/XaibkP7gm21kOJeQ/moy0/20B5D9CbiLF67XjP84he2nFPOM/8V2C1CWQ4j+JTQ3eOKrhP3aU6I5BheA/0Rjl4GU33j+2E5j9ltDaP/JwlJ9mzNY/aDDn/Tki0j9Sjh+zpZXJPwCL7epyArs/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"8925c20b-8979-481c-92f5-676de0866346\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(63, 151, 28)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2bdadb44-c49d-43e6-8291-5b789da22a52\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"8925c20b-8979-481c-92f5-676de0866346\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"41e945cc-d5ab-42dd-9d90-31ce50c018ce\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"ba54f6e9-7a72-4139-8efc-5cfc8faddb35\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"de92143b-0297-41fd-a2a0-6185187be219\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"ba54f6e9-7a72-4139-8efc-5cfc8faddb35\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAADO1BqkbMR5P0yXZPJJCZg/0cM8LQUwqT8HcA7rDtO0P3wdLVOjOL4/DNxK6m0uxD+BOSX7EnHJP/Q6d9xFvM4/DlR8Fzv30T8JN4y4CXbUP5EMl3KOz9Y/70OU5lb72D/ORTnDQ/PaP08Hy3dNs9w/qDlcMEk53j/zWzawroTfP5KN5ccvS+A/PlpPKji44D9thJTl+QrhP6FoW35kReE/+tnxBrZp4T9ekK4iZXrhP8dqILcMeuE/GSTOXllr4T8Jjqur+FDhP4SNFkKKLeE/2SMn0JID4T+L1mPgcNXgP92df4JTpeA/lNmowDJ14D+lJiLUyUbgP5CkXgiTG+A/Y+RWcYrp3z8k0B+jpabfP7td+njUb98/z99HNO9F3z8zDadbTynfP0ZQQbXXGd8/2DVyI/4W3z9Fvnsg1x/fPwjyd5QiM98/b0bJv1lP3z8OSu3zvXLfP3WjxNRnm98/EU0d3VbH3z+4d4zigPTfP55bNKtwEOA/OW37AUQl4D8z0EuH0zfgPxvT+vpPR+A/CTvqtAdT4D8pLJfda1rgP5d4YN4UXeA/TJH99MVa4D/ckTXYb1PgP6IPpl4yR+A/GERQG1024D9diq3mbiHgP/iNNk4UCeA/UuAez0nc3z/r4NUPP6PfPwknV8dKad8/3wmgO+gw3z+pNJekvfzeP8/VEVSMz94/u4ntFR+s3j/8a0b0NpXeP64uEZN2jd4/CW2SXUyX3j9mvkXH27TePy9Lv+jl594/ipfgx7Ex3z/ug1Oh9JLfP9fTzUfdBeA/bkAS+adN4D8dWzz+FaDgP0L1nG3u++A/KK278Hpf4T/IwswagMjhP+UanDw3NOI/8vJl9Umf4j9mtZzBzwXjPxgR1slNY+M/2JcCNbmy4z+kUaVBfO7jPwh19ml+EOQ/6lWw1i8S5D9OFrJjmOzjP50qo3hqmOM/HL1P9hkO4z/Fy4p390XiP/7Z+SFQOOE/0xyDgCS73z8IwSm37VzcPwyxRw1hSNg/OSqbDj9x0z9SNRYdLprLP+V2QHAXT70/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAANd0BwF0+9P281Fh0umss/PiqbDj9x0z8TsUcNYUjYPxfBKbftXNw/3xyDgCS73z8C2vkhUDjhP8jLinf3ReI/Gr1P9hkO4z+hKqN4apjjP0wWsmOY7OM/61Ww1i8S5D8MdfZpfhDkP6RRpUF87uM/2ZcCNbmy4z8WEdbJTWPjP2W1nMHPBeM/7vJl9Umf4j/jGpw8NzTiP8rCzBqAyOE/Jq278Hpf4T9D9Zxt7vvgPxtbPP4VoOA/bkAS+adN4D/T081H3QXgP+2DU6H0kt8/kJfgx7Ex3z8vS7/o5efeP2a+RcfbtN4/DW2SXUyX3j+vLhGTdo3eP/hrRvQ2ld4/u4ntFR+s3j/V1RFUjM/eP6o0l6S9/N4/4QmgO+gw3z8OJ1fHSmnfP+zg1Q8/o98/S+Aez0nc3z/4jTZOFAngP2CKreZuIeA/FkRQG1024D+hD6ZeMkfgP9+RNdhvU+A/TJH99MVa4D+TeGDeFF3gPyosl91rWuA/CTvqtAdT4D8X0/r6T0fgPzbQS4fTN+A/OW37AUQl4D+eWzSrcBDgP7t3jOKA9N8/Ek0d3VbH3z9vo8TUZ5vfPwxK7fO9ct8/dEbJv1lP3z8A8neUIjPfP0e+eyDXH98/3zVyI/4W3z9GUEG11xnfPy8Np1tPKd8/zt9HNO9F3z+8Xfp41G/fPx7QH6Olpt8/ZORWcYrp3z+UpF4IkxvgP6UmItTJRuA/ktmowDJ14D/cnX+CU6XgP4rWY+Bw1eA/1SMn0JID4T+FjRZCii3hPwyOq6v4UOE/GSTOXllr4T/IaiC3DHrhP12QriJleuE/+tnxBrZp4T+faFt+ZEXhP22ElOX5CuE/QVpPKji44D+PjeXHL0vgP/RbNrCuhN8/pDlcMEk53j9KB8t3TbPcP8RFOcND89o/6kOU5lb72D+PDJdyjs/WP/82jLgJdtQ/CVR8Fzv30T/rOnfcRbzOP3A5JfsScck/ANxK6m0uxD9XHS1Tozi+P/ZvDusO07Q/xMM8LQUwqT8Tl2TySQmYP4nUGqRsxHk/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"aba0c630-8487-4f65-beca-1706db2c128c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"aba0c630-8487-4f65-beca-1706db2c128c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2bdadb44-c49d-43e6-8291-5b789da22a52\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"1ffcb3df-e68b-467e-9ada-06a02da1f657\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"5b4bfe24-81b2-42c4-8e26-9781ebcf4f0d\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1ffcb3df-e68b-467e-9ada-06a02da1f657\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(14, 50, 152)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3032de44-27de-413f-ab50-937787370950\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"59c11d1d-0e64-41ef-a925-37ccc7cd5fbc\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"e5af83cf-28ac-4fa4-9e2e-4202f5e04a7a\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"09c36ebe-6ed5-4771-b696-46a41fe2d86b\",\"type\":\"Title\"},{\"attributes\":{\"line_color\":{\"value\":\"rgb(246, 229, 62)\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"469f50fd-6517-438d-8ba1-bc903dba53f3\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"a3d83212-e568-4de3-80fa-1cf497ee198b\",\"type\":\"ToolEvents\"},{\"attributes\":{\"below\":[{\"id\":\"4991e98e-5a55-404e-8f45-60e20fbb827e\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"d1224b33-85e4-4f23-a8c5-d80c0618a3c3\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"4991e98e-5a55-404e-8f45-60e20fbb827e\",\"type\":\"LinearAxis\"},{\"id\":\"acba8832-c591-4cb9-82e7-d578bbd7edbe\",\"type\":\"Grid\"},{\"id\":\"d1224b33-85e4-4f23-a8c5-d80c0618a3c3\",\"type\":\"LinearAxis\"},{\"id\":\"0b76a36b-96b4-4adc-8b51-83b4177fe866\",\"type\":\"Grid\"},{\"id\":\"ebfda01e-f344-4b6a-8f19-adee7dc41286\",\"type\":\"BoxAnnotation\"},{\"id\":\"50eb76cf-c461-4d86-82dc-353c9d89d395\",\"type\":\"GlyphRenderer\"},{\"id\":\"44e67274-a9e1-4533-aeb3-0c3ac7f80499\",\"type\":\"GlyphRenderer\"},{\"id\":\"882d7d53-8d19-4ab7-bcdd-64b10d192456\",\"type\":\"GlyphRenderer\"},{\"id\":\"26038497-ae96-433c-a0bc-f4a6257b3b08\",\"type\":\"GlyphRenderer\"},{\"id\":\"528e5171-5553-485e-90a5-ed24b9622ec0\",\"type\":\"GlyphRenderer\"},{\"id\":\"ffdb90e9-ddcf-40b2-a9a6-cd971711abc8\",\"type\":\"GlyphRenderer\"},{\"id\":\"9b3a40dd-d90d-461d-a95e-aaeaa4368fd5\",\"type\":\"GlyphRenderer\"},{\"id\":\"677b303d-020f-4f3d-98af-d0e8e7267a06\",\"type\":\"GlyphRenderer\"},{\"id\":\"9f981f42-98ca-4f57-a5f9-0e2623de24b1\",\"type\":\"GlyphRenderer\"},{\"id\":\"de92143b-0297-41fd-a2a0-6185187be219\",\"type\":\"GlyphRenderer\"},{\"id\":\"5b4bfe24-81b2-42c4-8e26-9781ebcf4f0d\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"09c36ebe-6ed5-4771-b696-46a41fe2d86b\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"a3d83212-e568-4de3-80fa-1cf497ee198b\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"746aa7ea-2e34-44b8-81c2-408d0e5b5053\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"ce488a67-c1c8-4323-8666-ea93873162a8\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"597d4b3a-6ccf-4dd5-b2a3-d690d85c05cc\",\"type\":\"DataRange1d\"}},\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null},\"id\":\"ce488a67-c1c8-4323-8666-ea93873162a8\",\"type\":\"DataRange1d\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1670d9b6-ff06-4cbe-a1ae-a83ebc0e25d6\",\"type\":\"PanTool\"},{\"id\":\"c14c9643-22c4-4d17-aff6-d1d200ff60f0\",\"type\":\"WheelZoomTool\"},{\"id\":\"1c90fc4e-3807-429b-96ca-5442fc9aff23\",\"type\":\"BoxZoomTool\"},{\"id\":\"3dee6431-5a5a-429a-8437-f25e21e2af7e\",\"type\":\"SaveTool\"},{\"id\":\"65fecad5-4ff2-4770-8987-455d6a328e04\",\"type\":\"ResetTool\"},{\"id\":\"cc8ffa6e-0620-4d8a-a0e8-1bbb497c8cad\",\"type\":\"HelpTool\"}]},\"id\":\"746aa7ea-2e34-44b8-81c2-408d0e5b5053\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"fe03657c-21ab-4dca-b86e-cbd944f7768c\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"597d4b3a-6ccf-4dd5-b2a3-d690d85c05cc\",\"type\":\"DataRange1d\"},{\"attributes\":{\"formatter\":{\"id\":\"e5af83cf-28ac-4fa4-9e2e-4202f5e04a7a\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"a592715c-efe7-4385-a8ec-6fc9c6bf235c\",\"type\":\"BasicTicker\"}},\"id\":\"4991e98e-5a55-404e-8f45-60e20fbb827e\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"a592715c-efe7-4385-a8ec-6fc9c6bf235c\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"a592715c-efe7-4385-a8ec-6fc9c6bf235c\",\"type\":\"BasicTicker\"}},\"id\":\"acba8832-c591-4cb9-82e7-d578bbd7edbe\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"e7d51232-10b3-4d53-928a-f82c77bf2551\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6005ec7b-17bb-4cbe-9c33-db82ed6e7a0d\",\"type\":\"BasicTicker\"}},\"id\":\"d1224b33-85e4-4f23-a8c5-d80c0618a3c3\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"6005ec7b-17bb-4cbe-9c33-db82ed6e7a0d\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6005ec7b-17bb-4cbe-9c33-db82ed6e7a0d\",\"type\":\"BasicTicker\"}},\"id\":\"0b76a36b-96b4-4adc-8b51-83b4177fe866\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"ebfda01e-f344-4b6a-8f19-adee7dc41286\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"1670d9b6-ff06-4cbe-a1ae-a83ebc0e25d6\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAACxlo/ixuwzP9Rz3gIyylM/FPuSx5AcZj8YLnxDCIVzP45B7UvUSX4/aSWdVNqnhT9tbsDD2ESNP6Kit8S0+pI/szncXYjZlz8qYVU4qTudP9w+la/sjqE/EHqxbm2+pD+QFAPftyqoP7bADQYt0qs/3jBV6S2zrz+1iy7HDeaxP1yTVH2rDbQ/jojemaBPtj+DRI6fHau4P2OgJRFTH7s/W3VmcXGrvT9QTomhVCfAP6/3dYQVhME/YCPaopPrwj/+vRY+Z13EPyC0jJco2cU/WvKc8G9exz9GZaiK1ezIP3j5D6fxg8o/jps0h1wjzD8aOHdsrsrNP7a7OJh/ec8/fAntJbSX0D89FV5kAHbRP2f3H6hwV9I/RybjEdE70z8rGFjC7SLUP1tDL9qSDNU/JB4Zeoz41T/UHsbCpubWP7W75tSt1tc/D2sr0W3I2D82o0TYsrvZP27a4gpJsNo/Boe2ifyl2z9KH3B1mZzcP4UZwO7rk90/AuxWFsCL3j8ODeUM4oPfP3p5jfkOPuA/AYrU9B+64D8/858ICjbhP1vwR0WzseE/frwkuwEt4j/Kko5626fiP2iu3ZMmIuM/eUpqF8mb4z8noowVqRTkP5fwnJ6sjOQ/7nDzwrkD5T9UXuiStnnlP+vz0x6J7uU/3mwOdxdi5j9OBPCrR9TmP2L10M3/ROc/Q3sJ7SW05z8U0fEZoCHoP/ox4mRUjeg/Hdky3ij36D+iATyWA1/pP7DmVZ3KxOk/asPYA2Qo6j/60hzatYnqP4FQejCm6Oo/KXdJFxtF6z8VguKe+p7rP22sndcq9us/VTHT0ZFK7D/0S9udFZzsP3E3Dkyc6uw/7i7E7As27T+VbVWQSn7tP4ouGkc+w+0/8qxqIc0E7j/2I58v3ULuP7jOD4JUfe4/YOgUKRm07j8SrAY1EefuP/hUPbYiFu8/Mx4RvTNB7z/sQtpZKmjvP0f+8Jzsiu8/aoutlmCp7z99JWhXbMPvP6QHee/12O8/BW04b+Pp7z/GkP7mGvbvPw2uI2eC/e8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAkHHOBhLeePzwZahJHZ64/wNCIOkeRtj9wE1g0zMa9P1ZqUTsZasI/O4q0AL3cxT9maVVqUTvJP9cHNHjWhcw/jWVQKky8zz9GQVVAWW/RP2kvob2E9tI/Lf0Ljahz1D+YqpWuxObVP6Q3PiLZT9c/U6QF6OWu2D+k8Ov/6gPaP5sc8WnoTts/MigVJt6P3D9wE1g0zMbdP0/euZSy894/aUSdo0gL4D98Ce0ltJfgP2A+TNEbH+E/FuO6pX+h4T+d9zij3x7iP/h7xsk7l+I/I3BjGZQK4z8f1A+S6HjjP+ynyzM54uM/jOuW/oVG5D/+nnHyzqXkP0DCWw8UAOU/VlVVVVVV5T89WF7EkqXlP/TKdlzM8OU/fa2eHQI35j/Z/9UHNHjmPwbCHBtitOY/AvRyV4zr5j/Sldi8sh3nP3WnTUvVSuc/5yjSAvRy5z8sGmbjDpbnP0R7Ce0ltOc/K0y8HznN5z/ijH57SOHnP3A9UABU8Oc/zF0xrlv65z/67SGFX//nP/rtIYVf/+c/zF0xrlv65z9vPVAAVPDnP+OMfntI4ec/Kky8HznN5z9CewntJbTnPywaZuMOluc/6CjSAvRy5z90p01L1UrnP9KV2LyyHec/A/RyV4zr5j8EwhwbYrTmP9f/1Qc0eOY/fK2eHQI35j/yynZczPDlPzxYXsSSpeU/VFVVVVVV5T9BwlsPFADlP/yecfLOpeQ/i+uW/oVG5D/rp8szOeLjPx7UD5LoeOM/InBjGZQK4z/2e8bJO5fiP533OKPfHuI/FOO6pX+h4T9fPkzRGx/hP3wJ7SW0l+A/Z0Sdo0gL4D9M3rmUsvPeP2wTWDTMxt0/MSgVJt6P3D+VHPFp6E7bP6Lw6//qA9o/UaQF6OWu2D+fNz4i2U/XP5Wqla7E5tU/Kv0Ljahz1D9lL6G9hPbSP0FBVUBZb9E/hmVQKky8zz/UBzR41oXMP1xpVWpRO8k/NYq0AL3cxT9KalE7GWrCP2ETWDTMxr0/u9CIOkeRtj8WGWoSR2euP/obc4GEt54/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"f25245c3-e286-4c2d-8225-d2eee84b3d19\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"c14c9643-22c4-4d17-aff6-d1d200ff60f0\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"ebfda01e-f344-4b6a-8f19-adee7dc41286\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"1c90fc4e-3807-429b-96ca-5442fc9aff23\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"e7d51232-10b3-4d53-928a-f82c77bf2551\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"3dee6431-5a5a-429a-8437-f25e21e2af7e\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"6b7e773a-ab9b-42fc-b06a-7d10adc3e20c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3032de44-27de-413f-ab50-937787370950\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"59c11d1d-0e64-41ef-a925-37ccc7cd5fbc\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"50eb76cf-c461-4d86-82dc-353c9d89d395\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"65fecad5-4ff2-4770-8987-455d6a328e04\",\"type\":\"ResetTool\"},{\"attributes\":{\"plot\":{\"id\":\"848d5955-61ba-4896-b950-46ce15d82ae7\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"cc8ffa6e-0620-4d8a-a0e8-1bbb497c8cad\",\"type\":\"HelpTool\"},{\"attributes\":{\"data_source\":{\"id\":\"f25245c3-e286-4c2d-8225-d2eee84b3d19\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"469f50fd-6517-438d-8ba1-bc903dba53f3\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"fe03657c-21ab-4dca-b86e-cbd944f7768c\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"44e67274-a9e1-4533-aeb3-0c3ac7f80499\",\"type\":\"GlyphRenderer\"}],\"root_ids\":[\"848d5955-61ba-4896-b950-46ce15d82ae7\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
       "            var render_items = [{\"docid\":\"aed67c60-aff1-4fd7-b7c8-f48a1ec9b187\",\"elementid\":\"a775e17f-84ce-4333-8c2b-6804c843ae6a\",\"modelid\":\"848d5955-61ba-4896-b950-46ce15d82ae7\"}];\n",
       "            \n",
       "            Bokeh.embed.embed_items(docs_json, render_items);\n",
       "          };\n",
       "          if (document.readyState != \"loading\") fn();\n",
       "          else document.addEventListener(\"DOMContentLoaded\", fn);\n",
       "        })();\n",
       "      },\n",
       "      function(Bokeh) {\n",
       "      }\n",
       "    ];\n",
       "  \n",
       "    function run_inline_js() {\n",
       "      \n",
       "      if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "        for (var i = 0; i < inline_js.length; i++) {\n",
       "          inline_js[i](window.Bokeh);\n",
       "        }if (force === true) {\n",
       "          display_loaded();\n",
       "        }} else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(run_inline_js, 100);\n",
       "      } else if (!window._bokeh_failed_load) {\n",
       "        console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "        window._bokeh_failed_load = true;\n",
       "      } else if (force !== true) {\n",
       "        var cell = $(document.getElementById(\"a775e17f-84ce-4333-8c2b-6804c843ae6a\")).parents('.cell').data().cell;\n",
       "        cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "      }\n",
       "  \n",
       "    }\n",
       "  \n",
       "    if (window._bokeh_is_loading === 0) {\n",
       "      console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "      run_inline_js();\n",
       "    } else {\n",
       "      load_libs(js_urls, function() {\n",
       "        console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "        run_inline_js();\n",
       "      });\n",
       "    }\n",
       "  }(this));\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "points = np.array([[0, 0], [0, 1], [1, 1], [1, 0]] * 4)\n",
    "plot = figure()\n",
    "\n",
    "for i in range(3, 14):\n",
    "    curve = np.array([p for _, p in bezier(points[:i])])\n",
    "    color = tuple(np.random.randint(0, 256, 3))\n",
    "    plot.line(curve[:, 0], curve[:, 1], color=color)\n",
    "\n",
    "show(plot)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
